using Catastrophe.Common.AttributeEx;

namespace HslCommunicationEx.OpcUa.Client.SieCnc
{
	public class MultiToolDataEntity
	{
		public int ToolNo { get; set; }

		public int DNo { get; set; }

		[ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},1]", "刀具类型", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public int ToolType { get; set; }

		[MultiToolData(ToolModuleEnum.EdgeData)]
		[ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},2]", "刀刃位置", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public int EdgePosition { get; set; }

		[MultiToolData(ToolModuleEnum.EdgeData)]
		[ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},3]", "长度1", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double Length1 { get; set; }
        [MultiToolData(ToolModuleEnum.EdgeData)]
        [ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},4]", "长度2", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
        public double Length2 { get; set; }
        [MultiToolData(ToolModuleEnum.EdgeData)]
        [ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},5]", "长度3", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
        public double Length3 { get; set; }

        [MultiToolData(ToolModuleEnum.EdgeData)]
		[ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},6]", "几何半径", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double Radius1 { get; set; }

		[MultiToolData(ToolModuleEnum.EdgeData)]
		[ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},7]", "几何倒角半径", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double CornerRadius { get; set; }

		[MultiToolData(ToolModuleEnum.EdgeData)]
		[ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},12]", "长度1磨损(补偿)", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double WearLength1 { get; set; }

		[MultiToolData(ToolModuleEnum.EdgeData)]
		[ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},15]", "磨损半径-对应几何半径1", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double WearRadius1 { get; set; }

		[MultiToolData(ToolModuleEnum.EdgeData)]
		[ComOpcUaData("/Tool/Compensation/edgeData[u{toolAreaNo},c{tNo},17]", "磨损长度", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double WearLength { get; set; }

		[MultiToolData(ToolModuleEnum.Supervision)]
		[ComOpcUaData("/Tool/Supervision/data[u{toolAreaNo},c{tNo},1]", "刀具寿命时间监控的预警限值", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double LifeLimit { get; set; }

		[MultiToolData(ToolModuleEnum.Supervision)]
		[ComOpcUaData("/Tool/Supervision/data[u{toolAreaNo},c{tNo},2]", "刀具寿命时间监控的剩余值", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double LifeQualityRemain { get; set; }

		[MultiToolData(ToolModuleEnum.Supervision)]
		[ComOpcUaData("/Tool/Supervision/data[u{toolAreaNo},c{tNo},3]", "刀具寿命工件数量预警限值", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public int WorkCountLimit { get; set; }

		[MultiToolData(ToolModuleEnum.Supervision)]
		[ComOpcUaData("/Tool/Supervision/data[u{toolAreaNo},c{tNo},4]", "刀具寿命工件计数监控的剩余值", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public int WorkCountRemain { get; set; }

		[MultiToolData(ToolModuleEnum.Supervision)]
		[ComOpcUaData("/Tool/Supervision/data[u{toolAreaNo},c{tNo},7]", "刀沿磨损预警限值", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double EdgeWearLimit { get; set; }

		[MultiToolData(ToolModuleEnum.Supervision)]
		[ComOpcUaData("/Tool/Supervision/data[u{toolAreaNo},c{tNo},8]", "刀沿磨损实际值", OprTypeEnum.Read, AllowOprEnum.ReadOnly, false)]
		public double EdgeWearActual { get; set; }

		[MultiToolData(ToolModuleEnum.Supervision)]
		[ComOpcUaData("/Tool/Supervision/data[u{toolAreaNo},c{tNo},5]", "刀具寿命时间监控的设定值", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double LifeQualitySet { get; set; }

		[MultiToolData(ToolModuleEnum.Supervision)]
		[ComOpcUaData("/Tool/Supervision/data[u{toolAreaNo},c{tNo},6]", "刀具寿命工件数量监控的设定值", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public int WorkCountSet { get; set; }

		[MultiToolData(ToolModuleEnum.Supervision)]
		[ComOpcUaData("/Tool/Supervision/data[u{toolAreaNo},c{tNo},9]", "刀沿磨损监控的设定值", OprTypeEnum.Read, AllowOprEnum.ReadAndWrite, false)]
		public double EdgeWearSet { get; set; }

		public string TimeStamp { get; set; }
	}
}
